#include "crc.h"
#define POL 0xA1CD
//CRC-16码（modbus）校验
//addr：需要校验的字节数组
//num：需要校验的字节数
//返回值：16位的CRC校验码
uint16_t crc16(uint32_t address,uint32_t num)
{
	int i,j,temp;
    uint8_t *addr;
    addr = (uint8_t *)address;
	uint16_t crc=0xFFFF;	
	for(i=0;i<num;i++)
	{
		crc=crc^(*addr);
		for(j=0;j<8;j++)
		{
			temp=crc&0x0001;
			crc=crc>>1;
			if(temp)
			{
				crc=crc^POL;
			}
		}

		addr++;
	}
	return crc;
}
